PL/SQL-এ Composite Data Types হল এমন ডেটা টাইপ যা একাধিক ভ্যালু ধারণ করতে পারে। এগুলি একাধিক ভেরিয়েবলকে একটি গ্রুপের মধ্যে সংরক্ষণ করতে সহায়ক। তিনটি প্রধান Composite Data Types হল: RECORD, TABLE, এবং VARRAY। এগুলি সম্পর্কে বিস্তারিত নিচে দেওয়া হল।
RECORD হল একটি user-defined composite data type, যা একাধিক ভেরিয়েবল (যা বিভিন্ন ডেটা টাইপের হতে পারে) একত্রে ধারণ করতে ব্যবহৃত হয়। এটি একটি অবজেক্টের মতো কাজ করে, যেখানে বিভিন্ন প্রপার্টি থাকে। রেকর্ড ব্যবহার করে, আপনি একাধিক মানকে একটি একক ডেটা টাইপে সংগ্রহ করতে পারেন।
DECLARE
TYPE employee_record IS RECORD (
employee_id NUMBER(6),
employee_name VARCHAR2(50),
hire_date DATE
);
v_employee employee_record; -- Variable to store employee data
BEGIN
-- Assigning values to the record fields
v_employee.employee_id := 101;
v_employee.employee_name := 'John Doe';
v_employee.hire_date := TO_DATE('2020-01-15', 'YYYY-MM-DD');
-- Displaying the record fields
DBMS_OUTPUT.PUT_LINE('Employee ID: ' || v_employee.employee_id);
DBMS_OUTPUT.PUT_LINE('Employee Name: ' || v_employee.employee_name);
DBMS_OUTPUT.PUT_LINE('Hire Date: ' || TO_CHAR(v_employee.hire_date, 'YYYY-MM-DD'));
END;
.
(ডট) অপারেটর ব্যবহার করা হয়।TABLE হল একটি nested table টাইপ, যা একাধিক মান (ডেটা) ধারণ করতে পারে। এটি একাধিক একক মান ধারণ করার জন্য ব্যবহৃত হয়। সাধারণত, যখন একটি ডেটা টাইপের একাধিক মান প্রয়োজন হয়, তখন TABLE ব্যবহার করা হয়।
DECLARE
TYPE number_table IS TABLE OF NUMBER; -- Declaring a table of numbers
v_numbers number_table := number_table(10, 20, 30, 40, 50); -- Initializing with values
BEGIN
-- Accessing elements of the table
FOR i IN 1..v_numbers.COUNT LOOP
DBMS_OUTPUT.PUT_LINE('Number ' || i || ': ' || v_numbers(i));
END LOOP;
END;
VARRAY হল একটি fixed-size array, যা সীমিত সংখ্যক উপাদান ধারণ করতে সক্ষম। VARRAY এর মধ্যে উপাদানগুলি সাজানো থাকে এবং একটি নির্দিষ্ট সাইজ থাকতে হয়। এটি এমন ডেটার জন্য উপযুক্ত, যেখানে আপনি জানেন যে উপাদান সংখ্যা সীমিত এবং সেগুলি একটি নির্দিষ্ট সীমার মধ্যে থাকবে।
DECLARE
TYPE number_varray IS VARRAY(5) OF NUMBER; -- Declaring a VARRAY of size 5
v_numbers number_varray := number_varray(1, 2, 3, 4, 5); -- Initializing with values
BEGIN
-- Accessing elements of the VARRAY
FOR i IN 1..v_numbers.LIMIT LOOP
DBMS_OUTPUT.PUT_LINE('Number ' || i || ': ' || v_numbers(i));
END LOOP;
END;
বৈশিষ্ট্য | RECORD | TABLE | VARRAY |
---|---|---|---|
ডেটা টাইপ | একাধিক ভেরিয়েবল মিশ্রিত ডেটা | একাধিক উপাদান ধারণকারী তালিকা | একাধিক উপাদান ধারণকারী অ্যারে |
সাইজ | আনলিমিটেড (নির্দিষ্ট সীমা নেই) | অনির্দিষ্ট সাইজ (কাউন্ট ব্যবহার) | নির্দিষ্ট সাইজ (সীমাবদ্ধ) |
ডেটা অ্যাক্সেস | . (ডট) অপারেটর দ্বারা | ইন্ডেক্স ব্যবহার করে | ইন্ডেক্স দ্বারা (যেমন: v_numbers(i) ) |
প্রধান ব্যবহার | সম্পর্কিত তথ্য সংরক্ষণ | একাধিক উপাদান ধারণ (ডায়নামিক) | সীমিত সংখ্যক উপাদান ধারণ |
ডেটার ধরন | বিভিন্ন টাইপের ডেটা একত্রিত করা | এক ধরনের ডেটা (সমস্ত উপাদান একই টাইপের) | এক ধরনের ডেটা (সমস্ত উপাদান একই টাইপের) |
PL/SQL এর Composite Data Types (RECORD
, TABLE
, এবং VARRAY
) আপনাকে একাধিক ডেটা উপাদানকে একত্রে সংগঠিত করতে এবং সংরক্ষণ করতে সহায়ক করে। আপনি যদি একাধিক ভিন্ন ধরনের তথ্য (যেমন নাম, বয়স, ঠিকানা) সংরক্ষণ করতে চান, তবে RECORD ব্যবহার করবেন। যদি আপনাকে ডাইনামিক ডেটা তালিকা বা সেট তৈরি করতে হয়, তবে TABLE এবং যদি আপনাকে একটি নির্দিষ্ট সীমার মধ্যে অ্যারে তৈরি করতে হয়, তবে VARRAY ব্যবহার করতে হবে।
Read more